home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekkan Dennou Club 145
/
Gekkan Dennou Club - 2000.6 Vol. 145 (Japan).7z
/
Gekkan Dennou Club - 2000.6 Vol. 145 (Japan) (Track 1).bin
/
games
/
spassion
/
source.lzh
/
SOURCE
/
SHOT.H
< prev
next >
Wrap
Text File
|
2000-03-31
|
2KB
|
58 lines
#ifndef SHOT_X
#define SHOT_X (*((short *) (&shot->lx))) /*lxの上位ワード*/
#define SHOT_Y (*((short *) (&shot->ly))) /*lyの上位ワード*/
#endif
typedef struct SHOT{
signed short x, y; /* 座標 */
short pt; /* スプライトパターンNo. */
short info; /* 反転コード・色・優先度を表わすデータ */
signed int lx, ly; /* 32bit X,Y 座標 ( l = longword ) */
signed int vx, vy; /* 速度 */
short *pt_; /* スプライトパターンNo.へのポインタ */
signed short hit_x, hit_y; /* 当たり判定の範囲 */
BOX_PTR box,old_box; /* レーザーなどに使う */
short type; /* 武器の種類 */
short pow; /* 攻撃力 */
short penetration; /* 貫通するか? */
short damage; /* 敵に当たったら = !0 */
short anim_count; /* アニメーションカウント */
short count; /* 汎用カウンタ */
short arg; /* 引数 */
short (*func_shot_move)( struct SHOT * ); /* 弾の動き用関数 */
struct PLAYER *player; /* 武器を発射したプレイヤー */
struct SHOT *next,*pre; /* リスト */
}SHOT;
/* ショットの情報 */
typedef struct SHOTINFO{
short pow; /* 攻撃力 */
short *pt; /* スプライト番号 */
short info; /* パレット、反転、プライオリティ情報 */
HIT_XY *hit; /* 当たり判定の大きさ */
short interval; /* 連射間隔 */
short penetration; /* 貫通するか? */
short (*func_shot_make)( struct PLAYER *,short opt_num ); /* 弾の生成用関数 */
short (*func_shot_move)( struct SHOT * ); /* 動き用の関数 */
short sd_no; /* 発射されたときの音番号 */
}SHOTINFO;
#ifdef GLOBAL_DEFINE /* グローバル変数の定義と宣言を1つにまとめるテク */
#define Extern /* Extern をヌル文字列に置換 */
#else
#define Extern extern /* Extern を extern に置換 */
#endif
/* shot_alloc & shot_free 用 */
Extern SHOT *shot_free;
Extern SHOT *shot_top;
Extern short shot_used_num; /* 今、使っている数 */
void InitShot0( void );
void InitShot( void );
SHOT *MakeShot( int vx, int vy, SHOTINFO * );
void MoveShot( void );
SHOT *EraseShot( SHOT *shot );